import Vue from 'vue'
import App from './App.vue'
// 引入路由配置
import router from "@/router/index"
// 引入表单验证插件
import '@/utils/validate/index'
// 引入懒加载插件
import VueLazyload from 'vue-lazyload';
// 引入加载状态下的图片
import load from '@/assets/images/lazy.gif';
// 注册插件
Vue.use(VueLazyload, {
    //preLoad: 1.3, // 提前加载高度（数字 1 表示 1 屏的高度） 默认值:1.3
    //error: 'dist/error.png', // 当加载图片失败的时候
    loading: load, // 图片加载状态下显示的图片
    //attempt: 3 //  加载错误后最大尝试次数 默认值:3
});

// 三级联动组件、轮播图、分页器————全局组件
import TypeNav from '@/components/TypeNav/index.vue'
import Carousel from '@/components/Carousel/index.vue'
import Pagination from '@/components/Pagination/index.vue'
import { Button, MessageBox } from 'element-ui'
// 第一个参数：全局组件的名称   第二个参数：哪一个组件
Vue.component(TypeNav.name, TypeNav)
Vue.component(Carousel.name, Carousel)
Vue.component(Pagination.name, Pagination);
// element-ui组测组件--挂在原型上
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;

// 引入vuex仓库
import store from '@/store/index'

// 测试
import { reqGetSearchInfo } from '@/api' //会默认找到api文件夹下的index


// 引入mockserve.js模拟数据
import '@/mock/mockServe.js'

// 统一引入api文件夹下全部的接口
// API这个对象包含模块中所有的请求接口
import * as API from '@/api/index'

Vue.config.productionTip = false

// 引入swiper的css样式
import 'swiper/css/swiper.css'

new Vue({
    render: h => h(App),
    // 配置全局事件总线
    // 配置全局API
    beforeCreate() {
        Vue.prototype.$bus = this;
        Vue.prototype.$API = API;
    },
    // 注册路由信息，组件身上都有$route,$router属性
    router,
    // 组测仓库：组件实例对象身上会多一个$store属性
    store,
}).$mount('#app')